<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTQuaternion.h</h1><a href="PVRTQuaternion_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span>
00002 <span class="comment"></span>
00003 <span class="comment"> @File         PVRTQuaternion.h</span>
00004 <span class="comment"></span>
00005 <span class="comment"> @Title        PVRTQuaternion</span>
00006 <span class="comment"></span>
00007 <span class="comment"> @Version      </span>
00008 <span class="comment"></span>
00009 <span class="comment"> @Copyright    Copyright (C)  Imagination Technologies Limited.</span>
00010 <span class="comment"></span>
00011 <span class="comment"> @Platform     ANSI compatible</span>
00012 <span class="comment"></span>
00013 <span class="comment"> @Description  Quaternion functions for floating and fixed point math.</span>
00014 <span class="comment"></span>
00015 <span class="comment">******************************************************************************/</span>
00016 <span class="preprocessor">#ifndef _PVRTQUATERNION_H_</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define _PVRTQUATERNION_H_</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "<a class="code" href="PVRTGlobal_8h.html">PVRTGlobal.h</a>"</span>
00020 <span class="preprocessor">#include "<a class="code" href="PVRTMatrix_8h.html">PVRTMatrix.h</a>"</span>
00021 
00022 <span class="comment">/****************************************************************************</span>
00023 <span class="comment">** Typedefs</span>
00024 <span class="comment">****************************************************************************/</span>
00025 <span class="comment">/*!***************************************************************************</span>
00026 <span class="comment"> Floating point Quaternion</span>
00027 <span class="comment">*****************************************************************************/</span>
<a name="l00028"></a><a class="code" href="structPVRTQUATERNIONf.html">00028</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
00029 <span class="keyword"></span>{
<a name="l00030"></a><a class="code" href="structPVRTQUATERNIONf.html#o0">00030</a>     <span class="keywordtype">float</span> x;    
<a name="l00031"></a><a class="code" href="structPVRTQUATERNIONf.html#o1">00031</a>     <span class="keywordtype">float</span> y;    
<a name="l00032"></a><a class="code" href="structPVRTQUATERNIONf.html#o2">00032</a>     <span class="keywordtype">float</span> z;    
<a name="l00033"></a><a class="code" href="structPVRTQUATERNIONf.html#o3">00033</a>     <span class="keywordtype">float</span> w;    
00034 } <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>;
00035 <span class="comment">/*!***************************************************************************</span>
00036 <span class="comment"> Fixed point Quaternion</span>
00037 <span class="comment">*****************************************************************************/</span>
<a name="l00038"></a><a class="code" href="structPVRTQUATERNIONx.html">00038</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
00039 <span class="keyword"></span>{
<a name="l00040"></a><a class="code" href="structPVRTQUATERNIONx.html#o0">00040</a>     <span class="keywordtype">int</span> x;  
<a name="l00041"></a><a class="code" href="structPVRTQUATERNIONx.html#o1">00041</a>     <span class="keywordtype">int</span> y;  
<a name="l00042"></a><a class="code" href="structPVRTQUATERNIONx.html#o2">00042</a>     <span class="keywordtype">int</span> z;  
<a name="l00043"></a><a class="code" href="structPVRTQUATERNIONx.html#o3">00043</a>     <span class="keywordtype">int</span> w;  
00044 } <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>;
00045 
00046 <span class="comment">/****************************************************************************</span>
00047 <span class="comment">** Float or fixed</span>
00048 <span class="comment">****************************************************************************/</span>
00049 <span class="preprocessor">#ifdef PVRT_FIXED_POINT_ENABLE</span>
00050 <span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>     <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNION</a>;
00051 <span class="preprocessor">#define PVRTMatrixQuaternionIdentity        PVRTMatrixQuaternionIdentityX</span>
00052 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionRotationAxis    PVRTMatrixQuaternionRotationAxisX</span>
00053 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionToAxisAngle     PVRTMatrixQuaternionToAxisAngleX</span>
00054 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionSlerp           PVRTMatrixQuaternionSlerpX</span>
00055 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionNormalize       PVRTMatrixQuaternionNormalizeX</span>
00056 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixRotationQuaternion        PVRTMatrixRotationQuaternionX</span>
00057 <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionMultiply        PVRTMatrixQuaternionMultiplyX</span>
00058 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00059"></a><a class="code" href="PVRTQuaternion_8h.html#a7">00059</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>     <a class="code" href="PVRTQuaternion_8h.html#a7">PVRTQUATERNION</a>;
<a name="l00060"></a><a class="code" href="PVRTQuaternion_8h.html#a0">00060</a> <span class="preprocessor">#define PVRTMatrixQuaternionIdentity        PVRTMatrixQuaternionIdentityF</span>
<a name="l00061"></a><a class="code" href="PVRTQuaternion_8h.html#a1">00061</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionRotationAxis    PVRTMatrixQuaternionRotationAxisF</span>
<a name="l00062"></a><a class="code" href="PVRTQuaternion_8h.html#a2">00062</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionToAxisAngle     PVRTMatrixQuaternionToAxisAngleF</span>
<a name="l00063"></a><a class="code" href="PVRTQuaternion_8h.html#a3">00063</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionSlerp           PVRTMatrixQuaternionSlerpF</span>
<a name="l00064"></a><a class="code" href="PVRTQuaternion_8h.html#a4">00064</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionNormalize       PVRTMatrixQuaternionNormalizeF</span>
<a name="l00065"></a><a class="code" href="PVRTQuaternion_8h.html#a5">00065</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixRotationQuaternion        PVRTMatrixRotationQuaternionF</span>
<a name="l00066"></a><a class="code" href="PVRTQuaternion_8h.html#a6">00066</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTMatrixQuaternionMultiply        PVRTMatrixQuaternionMultiplyF</span>
00067 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00068 <span class="preprocessor"></span>
00069 <span class="comment">/****************************************************************************</span>
00070 <span class="comment">** Functions</span>
00071 <span class="comment">****************************************************************************/</span>
00072 
00073 <span class="comment">/*!***************************************************************************</span>
00074 <span class="comment"> @Function          PVRTMatrixQuaternionIdentityF</span>
00075 <span class="comment"> @Output            qOut    Identity quaternion</span>
00076 <span class="comment"> @Description       Sets the quaternion to (0, 0, 0, 1), the identity quaternion.</span>
00077 <span class="comment">*****************************************************************************/</span>
00078 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a8">PVRTMatrixQuaternionIdentityF</a>(
00079     <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>     &amp;qOut);
00080 
00081 <span class="comment">/*!***************************************************************************</span>
00082 <span class="comment"> @Function          PVRTMatrixQuaternionIdentityX</span>
00083 <span class="comment"> @Output            qOut    Identity quaternion</span>
00084 <span class="comment"> @Description       Sets the quaternion to (0, 0, 0, 1), the identity quaternion.</span>
00085 <span class="comment">*****************************************************************************/</span>
00086 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a9">PVRTMatrixQuaternionIdentityX</a>(
00087     <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>     &amp;qOut);
00088 
00089 <span class="comment">/*!***************************************************************************</span>
00090 <span class="comment"> @Function          PVRTMatrixQuaternionRotationAxisF</span>
00091 <span class="comment"> @Output            qOut    Rotation quaternion</span>
00092 <span class="comment"> @Input             vAxis   Axis to rotate around</span>
00093 <span class="comment"> @Input             fAngle  Angle to rotate</span>
00094 <span class="comment"> @Description       Create quaternion corresponding to a rotation of fAngle</span>
00095 <span class="comment">                    radians around submitted vector.</span>
00096 <span class="comment">*****************************************************************************/</span>
00097 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a10">PVRTMatrixQuaternionRotationAxisF</a>(
00098     <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>     &amp;qOut,
00099     <span class="keyword">const</span> <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a>  &amp;vAxis,
00100     <span class="keyword">const</span> <span class="keywordtype">float</span>         fAngle);
00101 
00102 <span class="comment">/*!***************************************************************************</span>
00103 <span class="comment"> @Function          PVRTMatrixQuaternionRotationAxisX</span>
00104 <span class="comment"> @Output            qOut    Rotation quaternion</span>
00105 <span class="comment"> @Input             vAxis   Axis to rotate around</span>
00106 <span class="comment"> @Input             fAngle  Angle to rotate</span>
00107 <span class="comment"> @Description       Create quaternion corresponding to a rotation of fAngle</span>
00108 <span class="comment">                    radians around submitted vector.</span>
00109 <span class="comment">*****************************************************************************/</span>
00110 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a11">PVRTMatrixQuaternionRotationAxisX</a>(
00111     <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>     &amp;qOut,
00112     <span class="keyword">const</span> <a class="code" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a>  &amp;vAxis,
00113     <span class="keyword">const</span> <span class="keywordtype">int</span>           fAngle);
00114 
00115 
00116 <span class="comment">/*!***************************************************************************</span>
00117 <span class="comment"> @Function          PVRTMatrixQuaternionToAxisAngleF</span>
00118 <span class="comment"> @Input             qIn     Quaternion to transform</span>
00119 <span class="comment"> @Output            vAxis   Axis of rotation</span>
00120 <span class="comment"> @Output            fAngle  Angle of rotation</span>
00121 <span class="comment"> @Description       Convert a quaternion to an axis and angle. Expects a unit</span>
00122 <span class="comment">                    quaternion.</span>
00123 <span class="comment">*****************************************************************************/</span>
00124 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a12">PVRTMatrixQuaternionToAxisAngleF</a>(
00125     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;qIn,
00126     <a class="code" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a>            &amp;vAxis,
00127     <span class="keywordtype">float</span>                   &amp;fAngle);
00128 
00129 <span class="comment">/*!***************************************************************************</span>
00130 <span class="comment"> @Function          PVRTMatrixQuaternionToAxisAngleX</span>
00131 <span class="comment"> @Input             qIn     Quaternion to transform</span>
00132 <span class="comment"> @Output            vAxis   Axis of rotation</span>
00133 <span class="comment"> @Output            fAngle  Angle of rotation</span>
00134 <span class="comment"> @Description       Convert a quaternion to an axis and angle. Expects a unit</span>
00135 <span class="comment">                    quaternion.</span>
00136 <span class="comment">*****************************************************************************/</span>
00137 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a13">PVRTMatrixQuaternionToAxisAngleX</a>(
00138     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;qIn,
00139     <a class="code" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a>            &amp;vAxis,
00140     <span class="keywordtype">int</span>                     &amp;fAngle);
00141 
00142 <span class="comment">/*!***************************************************************************</span>
00143 <span class="comment"> @Function          PVRTMatrixQuaternionSlerpF</span>
00144 <span class="comment"> @Output            qOut    Result of the interpolation</span>
00145 <span class="comment"> @Input             qA      First quaternion to interpolate from</span>
00146 <span class="comment"> @Input             qB      Second quaternion to interpolate from</span>
00147 <span class="comment"> @Input             t       Coefficient of interpolation</span>
00148 <span class="comment"> @Description       Perform a Spherical Linear intERPolation between quaternion A</span>
00149 <span class="comment">                    and quaternion B at time t. t must be between 0.0f and 1.0f</span>
00150 <span class="comment">*****************************************************************************/</span>
00151 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a14">PVRTMatrixQuaternionSlerpF</a>(
00152     <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>         &amp;qOut,
00153     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;qA,
00154     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;qB,
00155     <span class="keyword">const</span> <span class="keywordtype">float</span>             t);
00156 
00157 <span class="comment">/*!***************************************************************************</span>
00158 <span class="comment"> @Function          PVRTMatrixQuaternionSlerpX</span>
00159 <span class="comment"> @Output            qOut    Result of the interpolation</span>
00160 <span class="comment"> @Input             qA      First quaternion to interpolate from</span>
00161 <span class="comment"> @Input             qB      Second quaternion to interpolate from</span>
00162 <span class="comment"> @Input             t       Coefficient of interpolation</span>
00163 <span class="comment"> @Description       Perform a Spherical Linear intERPolation between quaternion A</span>
00164 <span class="comment">                    and quaternion B at time t. t must be between 0.0f and 1.0f</span>
00165 <span class="comment">                    Requires input quaternions to be normalized</span>
00166 <span class="comment">*****************************************************************************/</span>
00167 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a15">PVRTMatrixQuaternionSlerpX</a>(
00168     <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>         &amp;qOut,
00169     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;qA,
00170     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;qB,
00171     <span class="keyword">const</span> <span class="keywordtype">int</span>               t);
00172 
00173 <span class="comment">/*!***************************************************************************</span>
00174 <span class="comment"> @Function          PVRTMatrixQuaternionNormalizeF</span>
00175 <span class="comment"> @Modified          quat    Vector to normalize</span>
00176 <span class="comment"> @Description       Normalize quaternion.</span>
00177 <span class="comment">*****************************************************************************/</span>
00178 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a16">PVRTMatrixQuaternionNormalizeF</a>(<a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;quat);
00179 
00180 <span class="comment">/*!***************************************************************************</span>
00181 <span class="comment"> @Function          PVRTMatrixQuaternionNormalizeX</span>
00182 <span class="comment"> @Modified          quat    Vector to normalize</span>
00183 <span class="comment"> @Description       Normalize quaternion.</span>
00184 <span class="comment">                    Original quaternion is scaled down prior to be normalized in</span>
00185 <span class="comment">                    order to avoid overflow issues.</span>
00186 <span class="comment">*****************************************************************************/</span>
00187 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a17">PVRTMatrixQuaternionNormalizeX</a>(<a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;quat);
00188 
00189 <span class="comment">/*!***************************************************************************</span>
00190 <span class="comment"> @Function          PVRTMatrixRotationQuaternionF</span>
00191 <span class="comment"> @Output            mOut    Resulting rotation matrix</span>
00192 <span class="comment"> @Input             quat    Quaternion to transform</span>
00193 <span class="comment"> @Description       Create rotation matrix from submitted quaternion.</span>
00194 <span class="comment">                    Assuming the quaternion is of the form [X Y Z W]:</span>
00195 <span class="comment"></span>
00196 <span class="comment">                        |       2     2                                 |</span>
00197 <span class="comment">                        | 1 - 2Y  - 2Z    2XY - 2ZW      2XZ + 2YW       0  |</span>
00198 <span class="comment">                        |                                                   |</span>
00199 <span class="comment">                        |                       2     2                 |</span>
00200 <span class="comment">                    M = | 2XY + 2ZW       1 - 2X  - 2Z   2YZ - 2XW       0  |</span>
00201 <span class="comment">                        |                                                   |</span>
00202 <span class="comment">                        |                                      2     2      |</span>
00203 <span class="comment">                        | 2XZ - 2YW       2YZ + 2XW      1 - 2X  - 2Y    0  |</span>
00204 <span class="comment">                        |                                                   |</span>
00205 <span class="comment">                        |     0            0              0          1  |</span>
00206 <span class="comment">*****************************************************************************/</span>
00207 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a18">PVRTMatrixRotationQuaternionF</a>(
00208     <a class="code" href="classPVRTMATRIXf.html">PVRTMATRIXf</a>             &amp;mOut,
00209     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;quat);
00210 
00211 <span class="comment">/*!***************************************************************************</span>
00212 <span class="comment"> @Function          PVRTMatrixRotationQuaternionX</span>
00213 <span class="comment"> @Output            mOut    Resulting rotation matrix</span>
00214 <span class="comment"> @Input             quat    Quaternion to transform</span>
00215 <span class="comment"> @Description       Create rotation matrix from submitted quaternion.</span>
00216 <span class="comment">                    Assuming the quaternion is of the form [X Y Z W]:</span>
00217 <span class="comment"></span>
00218 <span class="comment">                        |       2     2                                 |</span>
00219 <span class="comment">                        | 1 - 2Y  - 2Z    2XY - 2ZW      2XZ + 2YW       0  |</span>
00220 <span class="comment">                        |                                                   |</span>
00221 <span class="comment">                        |                       2     2                 |</span>
00222 <span class="comment">                    M = | 2XY + 2ZW       1 - 2X  - 2Z   2YZ - 2XW       0  |</span>
00223 <span class="comment">                        |                                                   |</span>
00224 <span class="comment">                        |                                      2     2      |</span>
00225 <span class="comment">                        | 2XZ - 2YW       2YZ + 2XW      1 - 2X  - 2Y    0  |</span>
00226 <span class="comment">                        |                                                   |</span>
00227 <span class="comment">                        |     0            0              0          1  |</span>
00228 <span class="comment">*****************************************************************************/</span>
00229 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a19">PVRTMatrixRotationQuaternionX</a>(
00230     <a class="code" href="classPVRTMATRIXx.html">PVRTMATRIXx</a>             &amp;mOut,
00231     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;quat);
00232 
00233 <span class="comment">/*!***************************************************************************</span>
00234 <span class="comment"> @Function          PVRTMatrixQuaternionMultiplyF</span>
00235 <span class="comment"> @Output            qOut    Resulting quaternion</span>
00236 <span class="comment"> @Input             qA      First quaternion to multiply</span>
00237 <span class="comment"> @Input             qB      Second quaternion to multiply</span>
00238 <span class="comment"> @Description       Multiply quaternion A with quaternion B and return the</span>
00239 <span class="comment">                    result in qOut.</span>
00240 <span class="comment">*****************************************************************************/</span>
00241 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a20">PVRTMatrixQuaternionMultiplyF</a>(
00242     <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>         &amp;qOut,
00243     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;qA,
00244     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>   &amp;qB);
00245 
00246 <span class="comment">/*!***************************************************************************</span>
00247 <span class="comment"> @Function          PVRTMatrixQuaternionMultiplyX</span>
00248 <span class="comment"> @Output            qOut    Resulting quaternion</span>
00249 <span class="comment"> @Input             qA      First quaternion to multiply</span>
00250 <span class="comment"> @Input             qB      Second quaternion to multiply</span>
00251 <span class="comment"> @Description       Multiply quaternion A with quaternion B and return the</span>
00252 <span class="comment">                    result in qOut.</span>
00253 <span class="comment">                    Input quaternions must be normalized.</span>
00254 <span class="comment">*****************************************************************************/</span>
00255 <span class="keywordtype">void</span> <a class="code" href="PVRTQuaternion_8h.html#a21">PVRTMatrixQuaternionMultiplyX</a>(
00256     <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>         &amp;qOut,
00257     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;qA,
00258     <span class="keyword">const</span> <a class="code" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a>   &amp;qB);
00259 
00260 <span class="preprocessor">#endif</span>
00261 <span class="preprocessor"></span>
00262 <span class="comment">/*****************************************************************************</span>
00263 <span class="comment"> End of file (PVRTQuaternion.h)</span>
00264 <span class="comment">*****************************************************************************/</span>
00265 
</pre></div><br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
